home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / vbcc-src / machines / i386 / machine.h < prev   
C/C++ Source or Header  |  1999-01-01  |  2KB  |  50 lines

  1. /*  Example of a code-generator for an Intel 386 or higher.         */
  2.  
  3. #include "dt.h"
  4.  
  5. /*  This struct can be used to implement machine-specific           */
  6. /*  addressing-modes.                                               */
  7. /*  Not used in this code-generrator.                               */
  8. struct AddressingMode{
  9.     int never_used;
  10. };
  11.  
  12. /*  The number of registers of the target machine.                  */
  13. #define MAXR 16
  14.  
  15. /*  Number of commandline-options the code-generator accepts.       */
  16. #define MAXGF 10
  17.  
  18. /*  If this is set to zero vbcc will not generate ICs where the     */
  19. /*  target operand is the same as the 2nd source operand.           */
  20. /*  This can sometimes simplify the code-generator, but usually     */
  21. /*  the code is better if the code-generator allows it.             */
  22. #define USEQ2ASZ 0
  23.  
  24. /*  This specifies the smallest integer type that can be added to a */
  25. /*  pointer.                                                        */
  26. #define MINADDI2P INT
  27.  
  28. /*  If the bytes of an integer are ordered most significant byte    */
  29. /*  byte first and then decreasing set BIGENDIAN to 1.              */
  30. #define BIGENDIAN 0
  31.  
  32. /*  If the bytes of an integer are ordered lest significant byte    */
  33. /*  byte first and then increasing set LITTLEENDIAN to 1.           */
  34. #define LITTLEENDIAN 1
  35.  
  36. /*  Note that BIGENDIAN and LITTLEENDIAN are mutually exclusive.    */
  37.  
  38. /*  If switch-statements should be generated as a sequence of       */
  39. /*  SUB,TST,BEQ ICs rather than COMPARE,BEQ ICs set this to 1.      */
  40. /*  This can yield better code on some machines.                    */
  41. #define SWITCHSUBS 0
  42.  
  43. /*  In optimizing compilation certain library memcpy/strcpy-calls   */
  44. /*  with length known at compile-time will be inlined using an      */
  45. /*  ASSIGN-IC if the size is less or equal to INLINEMEMCPY.         */
  46. /*  The type used for the ASSIGN-IC will be UNSIGNED|CHAR.          */
  47. #define INLINEMEMCPY 1024
  48.  
  49.  
  50.